Skip to content

feat: add Activity API trade processing with cross-source dedup#64

Merged
meseer merged 1 commit intomainfrom
feat/activity-trade-dedup
Apr 28, 2026
Merged

feat: add Activity API trade processing with cross-source dedup#64
meseer merged 1 commit intomainfrom
feat/activity-trade-dedup

Conversation

@meseer
Copy link
Copy Markdown
Owner

@meseer meseer commented Apr 28, 2026

  • Stop filtering trades from Activity API (v3) results
  • Add trade rules (buy/sell/fallback) to transaction rules engine
  • Add cross-source dedup: prefer Orders API data, keep Activity API trades for history
  • Add Symbol/Quantity/Price fields to Activity API query
  • Add formatTradeNotes() for Activity API trade formatting
  • Bump version to 6.11.0

Details

The Questrade Orders API (v1) only returns recent orders and cannot be relied on for historic sync. Previously, trades were filtered out of Activity API results to avoid duplicates with the Orders API. This change instead keeps all Activity API trades and deduplicates them against Orders API data using composite signature keys (symbol:date:action), preferring Orders API data when available and falling back to Activity API data for historic trades.

New transaction rules

  • trades-buy: Activity API buy trades
  • trades-sell: Activity API sell trades
  • trades-fallback: Activity API trades with unknown action

Trade note formatting

Activity API trades include: description, filled qty @ price, commission, total amount, and settlement date.

- Stop filtering trades from Activity API (v3) results
- Add trade rules (buy/sell/fallback) to transaction rules engine
- Add cross-source dedup: prefer Orders API data, keep Activity API trades for history
- Add Symbol/Quantity/Price fields to Activity API query
- Add formatTradeNotes() for Activity API trade formatting
- Bump version to 6.11.0
@meseer meseer merged commit e63962b into main Apr 28, 2026
2 checks passed
@meseer meseer deleted the feat/activity-trade-dedup branch April 28, 2026 06:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant